package com.starry.core.web.config.web;

import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * web 配置属性
 *
 * @author xiaoke
 */
@ConfigurationProperties(prefix = "starry.web")
@Data
public class WebProperties {

    private Api appApi = new Api("/app-api", "**.controller.app.**");
    private Api adminApi = new Api("/admin-api", "**.controller.admin.**");

    @NotNull(message = "Admin UI 不能为空")
    private Ui adminUi;

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class Api {

        /**
         * API 前缀，实现所有 Controller 提供的 RESTFul API 的统一前缀
         *
         */
        private String prefix;

        /**
         * Controller 所在包的 Ant 路径规则
         */
        private String controller;

    }

    @Data
    public static class Ui {

        /**
         * 访问地址
         */
        private String url;

    }
}
